Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Geometric primitive</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Geometric_primitive"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Geometric_primitive rootpage-Geometric_primitive skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Geometric primitive</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">

<p>In <a href="Vector_graphics" title="Vector graphics">vector</a> <a href="Computer_graphics" title="Computer graphics">computer graphics</a>, <a href="Computer-aided_design" title="Computer-aided design">CAD systems</a>, and <a href="Geographic_information_systems" class="mw-redirect" title="Geographic information systems">geographic information systems</a>, a <b>geometric primitive</b> (or <b>prim</b>) is the simplest (i.e. 'atomic' or irreducible) <a href="Geometric_shape" class="mw-redirect" title="Geometric shape">geometric shape</a> that the system can handle (draw, store). Sometimes the <a href="Subroutine" class="mw-redirect" title="Subroutine">subroutines</a> that draw the corresponding objects are called "geometric primitives" as well. The most "primitive" primitives are <a href="Point_(geometry)" title="Point (geometry)">point</a> and straight <a href="Line_segment" title="Line segment">line segments</a>, which were all that early vector graphics systems had.
</p><p>In <a href="Constructive_solid_geometry" title="Constructive solid geometry">constructive solid geometry</a>, primitives are simple <a href="Geometry" title="Geometry">geometric</a> shapes such as a <a href="Cube_(geometry)" class="mw-redirect" title="Cube (geometry)">cube</a>, <a href="Cylinder_(geometry)" class="mw-redirect" title="Cylinder (geometry)">cylinder</a>, <a href="Sphere" title="Sphere">sphere</a>, <a href="Cone_(geometry)" class="mw-redirect" title="Cone (geometry)">cone</a>, <a href="Pyramid_(geometry)" title="Pyramid (geometry)">pyramid</a>, <a href="Torus" title="Torus">torus</a>.
</p><p>Modern <a href="2D_computer_graphics" title="2D computer graphics">2D computer graphics</a> systems may operate with primitives which are <a href="Curve" title="Curve">curves</a> (segments of straight lines, <a href="Circle" title="Circle">circles</a> and more complicated curves), as well as shapes (boxes, arbitrary polygons, circles).
</p><p>A common set of two-dimensional primitives includes lines, points, and <a href="Polygon" title="Polygon">polygons</a>, although some people prefer to consider <a href="Triangle" title="Triangle">triangles</a> primitives, because every polygon can be constructed from triangles. All other graphic elements are built up from these primitives. In three dimensions, triangles or polygons positioned in three-dimensional space can be used as primitives to model more complex 3D forms. In some cases, curves (such as <a href="B%C3%A9zier_curve" title="Bézier curve">Bézier curves</a>, <a href="Circle" title="Circle">circles</a>, etc.) may be considered primitives; in other cases, curves are complex forms created from many straight, primitive shapes.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Common_primitives">Common primitives</h2></div>
<p>The set of geometric primitives is based on the <i><a href="Dimension" title="Dimension">dimension</a></i> of the region being represented:<sup id="cite_ref-Peuquet_1-0" class="reference"><a href="#cite_note-Peuquet-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>
</p>
<ul><li><i><a href="Point_(geometry)" title="Point (geometry)">Point</a></i> (0-dimensional), a single location with no height, width, or depth.</li>
<li><i><a href="Line_(geometry)" title="Line (geometry)">Line</a></i> or <i><a href="Curve" title="Curve">curve</a></i> (1-dimensional), having length but no width, although a linear feature may curve through a higher-dimensional space.</li>
<li><i><a href="Planar_surface" class="mw-redirect" title="Planar surface">Planar surface</a></i> or <i><a href="Surface" title="Surface">curved surface</a></i> (2-dimensional), having length and width.</li>
<li><i>Volumetric region</i> or <i><a href="Solid_figure" class="mw-redirect" title="Solid figure">solid</a></i> (3-dimensional), having length, width, and depth.</li></ul>
<p>In GIS, the <a href="Terrain" title="Terrain">terrain</a> surface is often spoken of colloquially as "2 1/2 dimensional," because only the upper surface needs to be represented. Thus, elevation can be conceptualized as a scalar <a href="Field_(geography)" title="Field (geography)">field</a> property or function of two-dimensional space, affording it a number of data modeling efficiencies over true 3-dimensional objects.
A shape of any of these dimensions greater than zero consists of an infinite number of distinct points. Because digital systems are finite, only a sample set of the points in a shape can be stored. Thus, vector data structures typically represent geometric primitives using a strategic sample, organized in structures that facilitate the software <a href="Interpolation" title="Interpolation">interpolating</a> the remainder of the shape at the time of analysis or display, using the algorithms of <a href="Computational_geometry" title="Computational geometry">Computational geometry</a>.<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p>
<ul><li>A <b>Point</b> is a single coordinate in a <a href="Cartesian_coordinate_system" title="Cartesian coordinate system">Cartesian coordinate system</a>. Some data models allow for <b>Multipoint</b> features consisting of several disconnected points.</li></ul>

<ul><li>A <b><a href="Polygonal_chain" title="Polygonal chain">Polygonal chain</a></b> or <b>Polyline</b> is an ordered list of points (termed <a href="Vertex_(computer_graphics)" title="Vertex (computer graphics)">vertices</a> in this context). The software is expected to <a href="Interpolation" title="Interpolation">interpolate</a> the intervening shape of the line between adjacent points in the list as a parametric curve, most commonly a straight line, but other types of curves are frequently available, including <a href="Arc_(geometry)" class="mw-redirect" title="Arc (geometry)">circular arcs</a>, <a href="Cubic_Hermite_spline" title="Cubic Hermite spline">cubic splines</a>, and <a href="B%C3%A9zier_curve" title="Bézier curve">Bézier curves</a>. Some of these curves require additional points to be defined that are not on the line itself, but are used for parametric control.</li>
<li>A <b><a href="Polygon" title="Polygon">Polygon</a></b> is a polyline that closes at its endpoints, representing the boundary of a two-dimensional region. The software is expected to use this boundary to partition 2-dimensional space into an interior and exterior. Some data models allow for a single feature to consist of multiple polylines, which could collectively connect to form a single closed boundary, could represent a set of disjoint regions (e.g., the state of <a href="Hawaii" title="Hawaii">Hawaii</a>), or could represent a region with holes (e.g., a lake with an island).</li></ul>

<ul><li>A <b>Parametric shape</b> is a standardized two-dimensional or three-dimensional shape defined by a minimal set of parameters, such as an <a href="Ellipse" title="Ellipse">ellipse</a> defined by two points at its foci, or three points at its center, vertex, and co-vertex.</li>
<li>A <b><a href="Polyhedron" title="Polyhedron">Polyhedron</a></b> or <b><a href="Polygon_mesh" title="Polygon mesh">Polygon mesh</a></b> is a set of polygon faces in three-dimensional space that are connected at their edges to completely enclose a volumetric region. In some applications, closure may not be required or may be implied, such as modeling terrain. The software is expected to use this surface to partition 3-dimensional space into an interior and exterior. A <a href="Triangle_mesh" title="Triangle mesh">triangle mesh</a> is a subtype of polyhedron in which all faces must be triangles, the only polygon that will always be planar, including the <a href="Triangulated_irregular_network" title="Triangulated irregular network">Triangulated irregular network</a> (TIN) commonly used in GIS.</li></ul>

<ul><li>A <b>parametric mesh</b> represents a three-dimensional surface by a connected set of parametric functions, similar to a spline or Bézier curve in two dimensions. The most common structure is the <a href="Non-uniform_rational_B-spline" title="Non-uniform rational B-spline">Non-uniform rational B-spline</a> (NURBS), supported by most CAD and animation software.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Application_in_GIS">Application in GIS</h2></div>
<p>A wide variety of vector data structures and formats have been developed during the history of <a href="Geographic_information_systems" class="mw-redirect" title="Geographic information systems">Geographic information systems</a>, but they share a fundamental basis of storing a core set of geometric primitives to represent the location and extent of geographic phenomena. Locations of points are almost always measured within a standard Earth-based coordinate system, whether the spherical <a href="Geographic_coordinate_system" title="Geographic coordinate system">Geographic coordinate system</a> (latitude/longitude), or a planar coordinate system, such as the <a href="Universal_Transverse_Mercator" class="mw-redirect" title="Universal Transverse Mercator">Universal Transverse Mercator</a>. They also share the need to store a set of attributes of each geographic feature alongside its shape; traditionally, this has been accomplished using the data models, data formats, and even software of <a href="Relational_database" title="Relational database">relational databases</a>.
</p><p>Early vector formats, such as <a href="Harvard_Laboratory_for_Computer_Graphics_and_Spatial_Analysis" title="Harvard Laboratory for Computer Graphics and Spatial Analysis">POLYVRT</a>, the ARC/INFO Coverage, and the <a href="Shapefile" title="Shapefile">Esri shapefile</a> support a basic set of geometric primitives: points, polylines, and polygons, only in two dimensional space and the latter two with only straight line interpolation. TIN data structures for representing terrain surfaces as triangle meshes were also added. Since the mid 1990s, new formats have been developed that extend the range of available primitives, generally standardized by the <a href="Open_Geospatial_Consortium" title="Open Geospatial Consortium">Open Geospatial Consortium</a>'s <a href="Simple_Features" title="Simple Features">Simple Features</a> specification.<sup id="cite_ref-ogc-sf_3-0" class="reference"><a href="#cite_note-ogc-sf-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> Common geometric primitive extensions include: three-dimensional coordinates for points, lines, and polygons; a fourth "dimension" to represent a measured attribute or time; curved segments in lines and polygons; text annotation as a form of geometry; and polygon meshes for three-dimensional objects.
</p><p>Frequently, a representation of the shape of a real-world phenomenon may have a different (usually lower) dimension than the phenomenon being represented. For example, a city (a two-dimensional region) may be represented as a point, or a road (a three-dimensional volume of material) may be represented as a line. This dimensional generalization correlates with tendencies in spatial cognition. For example, asking the distance between two cities presumes a conceptual model of the cities as points, while giving directions involving travel "up," "down," or "along" a road imply a one-dimensional conceptual model. This is frequently done for purposes of data efficiency, visual simplicity, or cognitive efficiency, and is acceptable if the distinction between the representation and the represented is understood, but can cause confusion if information users assume that the digital shape is a perfect representation of reality (i.e., believing that roads really are lines).
</p>
<div class="mw-heading mw-heading2"><h2 id="In_3D_modelling">In 3D modelling</h2></div>
<p>In CAD software or <a href="3D_modelling" class="mw-redirect" title="3D modelling">3D modelling</a>, the interface may present the user with the ability to create primitives which may be further modified by edits.<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> For example, in the practice of <a href="Box_modelling" class="mw-redirect" title="Box modelling">box modelling</a> the user will start with a cuboid, then use extrusion and other operations to create the model. In this use the primitive is just a convenient starting point, rather than the fundamental unit of modelling.
</p><p>A 3D package may also include a list of extended primitives which are more complex shapes that come with the package. For example, a <a href="Utah_teapot" title="Utah teapot">teapot</a> is listed as a primitive in <a href="3D_Studio_Max" class="mw-redirect" title="3D Studio Max">3D Studio Max</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="In_graphics_hardware">In graphics hardware</h2></div>
<p>Various <a href="Graphics_accelerator" class="mw-redirect" title="Graphics accelerator">graphics accelerators</a> exist with <a href="Hardware_acceleration" title="Hardware acceleration">hardware acceleration</a> for rendering specific primitives such as lines or triangles, frequently with <a href="Texture_mapping" title="Texture mapping">texture mapping</a> and <a href="Shader" title="Shader">shaders</a>. Modern 3D accelerators typically accept sequences of triangles as <a href="Triangle_strip" title="Triangle strip">triangle strips</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="2D_geometric_model" title="2D geometric model">2D geometric model</a></li>
<li><a href="Sculpted_prim" class="mw-redirect" title="Sculpted prim">Sculpted prim</a></li>
<li><a href="Simplex" title="Simplex">Simplex</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */


.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}


/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-Peuquet-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-Peuquet_1-0">^</a></b></span> <span class="reference-text">Peuquet, Donna J. (1984), <a rel="nofollow" class="external text" href="https://www.researchgate.net/publication/244954245_A_Conceptual_Framework_and_Comparison_of_Spatial_Data_Models">A Conceptual Framework and Comparison of Spatial Data Models</a>, <i>Cartographica</i> 21 (4): 66–113. doi:10.3138/D794-N214-221R-23R5.</span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://saylordotorg.github.io/text_essentials-of-geographic-information-systems/s08-02-vector-data-models.html">Vector Data Models</a>, <i>Essentials of Geographic Information Systems</i>, Saylor Academy, 2012</span>
</li>
<li id="cite_note-ogc-sf-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-ogc-sf_3-0">^</a></b></span> <span class="reference-text">Open Geospatial Consortium, <a rel="nofollow" class="external text" href="https://www.ogc.org/standards/sfa">OpenGIS Implementation Specification for Geographic information - Simple feature access</a>, Version 1.2.1</span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */


.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}


/* end https://en.wikipedia.org/ */
</style><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2017/ENU/3DSMax/files/GUID-66152BDE-BA64-423F-8472-C1F0EB409E16-htm.html">"3d studio primitives"</a>.</cite></span>
</li>
</ol></div></div>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<ul><li><a rel="nofollow" class="external text" href="http://www.peachpit.com/articles/article.aspx?p=30594&amp;seqNum=5">Peachpit.com Info On 3D Primitives</a></li></ul></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-05-10" href="https://en.wikipedia.org/wiki/?title=Geometric_primitive&amp;oldid=1289754803">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>

</body></html>